Hi Barry,
Well the only thing worse than lots of backlash is backlash that varies.
But here are some thoughts:
I assume you are running "Closed Loop Stepper" mode?
I don't think Velocity or Acceleration Feed Forward makes sense in this configuration so please set that to zero.
With closed loop and with backlash that varies I don't think Backlash compensation would be helpful so turn that off.
Ideally Closed Loop with glass scale feedback will do what you are requesting and eliminate errors and backlash, but the issue is with the complex dynamics of how it is corrected.
Have you made plots to observe exactly what is happening? Using the Step Response Screen using "infinite" Jerk see if you can make plots (Command, Position Output vs Time) to clearly observe the issue.
The main problem with backlash in a feedback loop is that it is very destabilizing. The worst situation is a system with backlash and a lot of static friction. The servo ramps up motor torque and initially nothing happens due to friction, eventually torque overcomes friction and the motor begins to accelerate, but there is no information that the motor is accelerating fed back from the glass scales because of backlash. Eventually the backlash is taken out and the scales detect a jump in velocity, but it might be too late at that point to avoid an overshoot. Incidentally unlike static friction, Viscus friction (drag proportional to velocity) can help stabilize the system.
Traditional servos minimize this problem by providing tachometer feedback from the motor shaft. This basically allows information of when the motor shaft breaks free of friction and instead of uncontrolled acceleration through the backlash, there will be controlled velocity through the backlash until the scales detect motion and the error begins to decrease. To some degree stepper motors provide a similar effect. Steps to the Amplifier initially generate torque but no motion. After static friction breaks free the motion reduces the torque.
We normally recommend using Integral Gain with a low pass filter when operating closed loop steppers. Pure integral Gain will cause the output (position) to ramp at a rate proportional to the error. As you increase the I gain and also as you increase the low pass frequency the errors and backlash should be eliminated faster. However increasing them too much will cause overshooting and oscillation due to the effects described above. Have you observed this?
Another important parameter is Max Error. Normally with Integral feedback the step rate to correct error will increase proportionally with the size of the error. Max Error can place a limit on the size of the error that the servo sees to effectively place a limit on the max rate that is ever used to correct error. For large errors the servo will then step at a constant rate until the error becomes less than the Max Error setting, then slow down as the error decreases. See:
Sorry for the long-winded response. Closed loop with backlash is a very difficult and complex problem. It would be interesting to see some of your plots.
Regards
TK
--- On Sat, 7/2/11, barry.graham911 <barry.graham911@...> wrote:
From: barry.graham911 <barry.graham911@...> Subject: [DynoMotion] Problems with Backlash To: DynoMotion@yahoogroups.com Date: Saturday, July 2, 2011, 6:27 AM
I have just installed a kflop card on a RF40 Style Mill Drill retrofitted with Stepper Motors and linear glass scales.
I was previously driving directly the system using Mach3 - but the backlash and the lack of ability to utilise position feedback within Mach3 led me to try the dynomotion card.
I'm having the devil of a job tuning the stepper motors ! I have spent many hours playing with different settings.
The X axis is tolerable when using the linear backlash compensation along with a small amount of Integral.
The Y axis on the Mill has an adjustment on the leadscrew nut to tighten up the back lash but it is nigh on impossible to get to the screw ! Furthermore - I find that at differing points on the leadscrew - the amount of backlash is different - thus a fixed backlash setting is just confusing the system. I also tried without backlash compensation - but even with lots of feedforward and integral - the system cannot
deal with nearly 0.15mm of no motion where there is commanded motion when changing directions.
Now I know that what I should have done is fitted decent leadscrews when I upgrade the mill (and this I will probably do eventually).
What I'm looking for is 2 fold - one is to advise tuning parameters that maybe I haven't tried or suggestion of how best to set up the motors ?
The other question is whether there's a software solution ? Would it not be possible to trap incoming move requests from Mach3 and if they involve a change of direction - rotate the drive until motion is detected using the linear scale feedback, and then proceed with the move (minus one step perhaps - which represents the initially detected motion) ? I guess this may not be so easy if move requests are buffered ? Or would it be possible to do it in the kflop drive level operating system - i.e do a small move whilst looking for signs of physical movement prior to
executing the move command with whatever PID settings have been issued ?
|